package com.jic.point.service;

import com.github.pagehelper.PageInfo;
import com.jic.point.model.entity.ConfBd;
import com.jic.point.model.vo.response.ConfBdResponse;
import com.jic.point.rest.request.SignData;

import java.math.BigDecimal;
import java.util.List;

/**
 * ConfBd表
 *
 * @author : 建投数据 
 * @version : v1.0.0
 * @email :
 * @since : 2020-03-21 10:12:20
 */
public interface ConfBdService {

    /**
     * CONF_BD插入数据
     * @param confBd 入参实体类
     */
    int insertSelective (ConfBd confBd);
    /**
     * 保存接口
     * @param request 保存入参
     * @return int 是否保存成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int save(ConfBd request) ;

    /**
     * 保存或修改接口
     * @param request 保存或修改入参
     * @return int 是否保存或修改成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int saveOrUpdate(ConfBd request) ;
    /**
     * 审核通过，通过主表code字段，将delete_flag字段改为0
     * @param request 保存或修改入参
     * @return int 是否保存或修改成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int saveOrUpdateApply(ConfBd request) ;


    /**
     * 删除接口
     * @param request 删除入参
     * @return int 是否物理删除成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int deleteByPrimaryKey(ConfBd request) ;

    /**
     * 删除接口
     * @param request 删除入参
     * @return int 是否逻辑删除成功
     * @auther tzc
     * @date 2020-3-11 20:58:44
     */
    int deleteByPrimaryKeyLogically(ConfBd request) ;

    /**
     * 修改
     *
     * @param request 修改入参实体类
     * @return int 是否修改成功
     */
    int updateByPrimaryKeySelective(ConfBd request) ;

    /**
     * 详情
     *
     * @param request 详情查询实体类
     * @return ConfBd数据库查询返回的实体类
     *  @auther
     */
    ConfBd getByPrimaryKey(ConfBd request);

    ConfBd getByode(ConfBd confBd);

    /**
     * 分页查询
     *
     * @param request 入参查询实体类
     * @return 数据库查询到的,分页后的实体类列表
     */
    PageInfo<ConfBd> listPageBySelective(ConfBd request,int pageNum, int pageSize);

    /**
     * 不分页查询
     *
     * @param request 查询入参实体类
     * @return 实体类列表
     */
    List<ConfBd> listAllRecord(ConfBd request);

    /**
     * 查询部门名称id用于下拉框展示
     * @return
     */
    List<ConfBdResponse> query();

    /**
     * 根据code修改
     * @param confBd
     * @return
     */
    int updateByCode(ConfBd confBd);

    //通过 code 查询 部门
    List<ConfBd> selConfBdByCode(SignData signData);

    BigDecimal queryAvailablePoint(String busiCode);

    List<ConfBdResponse> getTree();

    Boolean virtual(ConfBd confBd);

    int dbPointDeduction(ConfBd confbd);
}

